﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SistemaLib.Entidades;

namespace SistemaLib.sipe.util
{
    public static class Fechas
    {
        public static DateTime ProximoDiaHabil(DateTime fecha)
        {
            DateTime proxFechaHabil;
            
            switch (fecha.DayOfWeek)
            {
                case DayOfWeek.Saturday: proxFechaHabil = fecha.AddDays(2); break;

                case DayOfWeek.Sunday: proxFechaHabil = fecha.AddDays(1); break;

                default: proxFechaHabil = fecha; break;
            }

            return proxFechaHabil;
        }

        public static string FechaFormateada(DateTime fecha)
        {
            return fecha.ToString("dd/MM/yyyy");
        }       

        public static List<KeyValueItem> CargarComboAnios(int amplitud)
        {
            List<KeyValueItem> lista = new List<KeyValueItem>();
            KeyValueItem anio = new KeyValueItem();            
            anio.Description = DateTime.Now.Year.ToString();
            anio.Id = DateTime.Now.Year.ToString();
            lista.Add(anio);
            
            for (int i = 1; i <= amplitud; i++)
            {
                anio = new KeyValueItem();
                anio.Description = DateTime.Now.AddYears(i).Year.ToString();//Para Adelante del año actual
                anio.Id = DateTime.Now.AddYears(i).Year.ToString();
                lista.Add(anio);

                anio = new KeyValueItem();
                anio.Description = DateTime.Now.AddYears(-i).Year.ToString(); //Para Atras
                anio.Id = DateTime.Now.AddYears(-i).Year.ToString();
                lista.Add(anio);
            }

            return lista.OrderBy(p => p.Description).ToList(); ;
        }
    }
}
